Set 您所在的位置:网站首页 process on如何使用 Set

Set

#Set| 来源: 网络整理| 查看: 265

Set-ExecutionPolicy 参考 模块: Microsoft.PowerShell.Security

为 Windows 计算机设置 PowerShell 执行策略。

语法 Set-ExecutionPolicy [-ExecutionPolicy] [[-Scope] ] [-Force] [-WhatIf] [-Confirm] [] 说明

Set-ExecutionPolicy cmdlet 更改 Windows 计算机的 PowerShell 执行策略。 有关更多信息,请参阅 about_Execution_Policies。

从非 Windows 计算机的 PowerShell 6.0 开始,默认执行策略为 Unrestricted 且无法更改。 Set-ExecutionPolicy cmdlet 可用,但 PowerShell 会显示不支持的控制台消息。

执行策略是 PowerShell 安全策略的一部分。 执行策略确定是否可以加载配置文件(例如 PowerShell 配置文件)或运行脚本。 此外,脚本在运行之前是否必须进行数字签名。

Set-ExecutionPolicy cmdlet 的默认作用域为 LocalMachine,这会影响使用计算机的每个人。 若要更改 LocalMachine 的执行策略,请使用以管理员身份运行启动 PowerShell。

若要按优先级顺序显示每个范围的执行策略,请使用 Get-ExecutionPolicy -List。 若要查看 PowerShell 会话的有效执行策略,请使用不带任何参数的 Get-ExecutionPolicy。

示例 示例 1:设置执行策略

此示例演示如何设置本地计算机的执行策略。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine RemoteSigned

Set-ExecutionPolicy cmdlet 使用 ExecutionPolicy 参数来指定 RemoteSigned 策略。 Scope 参数指定默认作用域值 LocalMachine。 若要查看执行策略设置,请使用具有 List 参数的 Get-ExecutionPolicy cmdlet。

示例 2:设置与组策略冲突的执行策略

此命令尝试将 LocalMachine 作用域的执行策略设置为 Restricted。 LocalMachine 更严格,但不是有效的策略,因为它与组策略冲突。 Restricted 策略写入注册表配置单元 HKEY_LOCAL_MACHINE。

PS> Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine Set-ExecutionPolicy : PowerShell updated your local preference successfully, but the setting is overridden by the Group Policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your Group Policy administrator for more information. At line:1 char:20 + Set-ExecutionPolicy Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine PS> Get-ExecutionPolicy RemoteSigned PS> .\Start-ActivityTracker.ps1 .\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded. The file .\Start-ActivityTracker.ps1 is not digitally signed. The script will not execute on the system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170. At line:1 char:1 + .\Start-ActivityTracker.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS> Unblock-File -Path .\Start-ActivityTracker.ps1 PS> Get-ExecutionPolicy RemoteSigned PS> .\Start-ActivityTracker.ps1 Task 1:

Set-ExecutionPolicy 使用 ExecutionPolicy 参数来指定 RemoteSigned 策略。 策略设置用于默认范围 LocalMachine。

Get-ExecutionPolicy cmdlet 显示,RemoteSigned 是当前 PowerShell 会话的有效执行策略。

Start-ActivityTracker.ps1 脚本从当前目录执行。 RemoteSigned 会阻止该脚本,因为该脚本未进行数字签名。

对于此示例,脚本的代码已查看并验证为安全运行。 Unblock-File cmdlet 使用 Path 参数取消阻止脚本。

为验证 Unblock-File 未更改执行策略,Get-ExecutionPolicy 显示有效的执行策略 RemoteSigned。

脚本 Start-ActivityTracker.ps1 从当前目录执行。 该脚本开始运行,因为它已被 Unblock-File cmdlet 取消阻止。

参数 -Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter Aliases:cf Position:Named Default value:False Required:False Accept pipeline input:False Accept wildcard characters:False -ExecutionPolicy

指定执行策略。 如果没有组策略,并且每个范围的执行策略都设置为 Undefined,则 Restricted 将成为所有用户的有效策略。

可接受的执行策略值如下所示:

AllSigned。 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。 绕过。 不阻止任何操作,并且没有任何警告或提示。 默认。 设置默认执行策略。 Restricted(适用于 Windows 客户端)或 RemoteSigned(适用于 Windows 服务器)。 RemoteSigned。 要求从 Internet 下载的所有脚本和配置文件都由受信任的发布者签名。 Windows 服务器计算机的默认执行策略。 Restricted。 不加载配置文件或运行脚本。 Windows 客户端计算机的默认执行策略。 Undefined。 没有为范围设置执行策略。 从组策略未设置的范围中删除分配的执行策略。 如果所有范围内的执行策略为 Undefined,则有效执行策略为 Restricted。 Unrestricted。 从 PowerShell 6.0 开始,这是非 Windows 计算机的默认执行策略,无法更改。 加载所有配置文件并运行所有脚本。 如果运行从 Internet 下载的未签名脚本,则系统将提示你需要权限才能运行该脚本。 Type:ExecutionPolicy Accepted values:AllSigned, Bypass, Default, RemoteSigned, Restricted, Undefined, Unrestricted Position:0 Default value:None Required:True Accept pipeline input:True Accept wildcard characters:False -Force

抑制所有确认提示。 请谨慎使用此参数以避免意外结果。

Type:SwitchParameter Position:Named Default value:False Required:False Accept pipeline input:False Accept wildcard characters:False -Scope

指定受执行策略影响的范围。 默认范围为 LocalMachine。

有效的执行策略按优先级顺序确定,如下所示:

MachinePolicy。 通过组策略为计算机的所有用户设置。 UserPolicy。 通过组策略为计算机的当前用户设置。 过程。 仅影响当前的 PowerShell 会话。 CurrentUser。 仅影响当前用户。 LocalMachine。 影响计算机所有用户的默认范围。

Process 范围仅影响当前的 PowerShell 会话。 执行策略保存在环境变量 $env:PSExecutionPolicyPreference 中,而不是注册表中。 关闭 PowerShell 会话时,将删除变量和值。

CurrentUser 范围的执行策略写入注册表配置单元 HKEY_LOCAL_USER。

LocalMachine 范围的执行策略写入注册表配置单元 HKEY_LOCAL_MACHINE。

Type:ExecutionPolicyScope Accepted values:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy Position:1 Default value:LocalMachine Required:False Accept pipeline input:True Accept wildcard characters:False -WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter Aliases:wi Position:Named Default value:False Required:False Accept pipeline input:False Accept wildcard characters:False 输入

ExecutionPolicy

可以通过管道将执行策略对象传递给此 cmdlet。

String

可以通过管道将包含执行策略名称的字符串传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。

备注

Set-ExecutionPolicy 不会更改 MachinePolicy 和 UserPolicy 范围,因为它们是由组策略设置的。

即使用户首选项比策略更严格,Set-ExecutionPolicy 也不会覆盖组策略。

如果为计算机或用户启用组策略“启用脚本执行”,则用户首选项会保存,但不会生效。 PowerShell 显示用于说明冲突的消息。

相关链接 about_Execution_Policies about_Group_Policy_Settings about_Providers Get-AuthenticodeSignature Get-ChildItem Get-ExecutionPolicy Invoke-Command Set-AuthenticodeSignature Unblock-File


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有